做系統開發或專案,最常聽到的工程師名言大概就是:「功能或程式在我電腦上或測試環境明明可以跑啊!」但系統要能正式上線,總不能靠工程師的個人感覺及測試,還是要靠一系列嚴謹的測試來把關。
實務上,測試不只是「幫忙找 Bug」而已,每個階段的測試重點跟目的都不太一樣。今天就來聊聊 SDLC 流程中幾個常見又重要的測試類型。
白箱與黑箱:測試的基本視角
在講具體測試前,先看測試的兩種基本視角:
白箱測試(White-box):看得到程式碼內部邏輯,測試者必須懂程式語言。最常用在開發階段的單元測試,用來檢查程式邏輯對不對。
黑箱測試(Black-box):不看底層程式碼,只看系統功能與介面表現。測試者不需要懂寫 Code,常見於使用者驗收測試(UAT)或介面測試(Interface Testing)。
從模組到完整系統:開發階段測試
單元測試(Unit Testing):程式或模組一寫好,開發者自己就要先跑測試,不用等整個系統蓋完。主要用白箱方式檢查內部邏輯。
整合測試(Integrated Testing):當多個模組串在一起時,驗證彼此之間的資料流傳遞是不是正確順暢。
系統測試(System Testing):這是點到點(End-to-End)的全面體檢。除了功能要對之外,還涵蓋安全性、效能、負載、壓力、容量以及可復原性測試,確保系統在高壓或極端狀況下不會崩潰。
上線前後的部署與環境驗證
當系統寫完準備上線時,還有一連串確保品質的測試要跑:
最終驗收測試(Final Acceptance Testing):包含品質保證測試(QAT)與使用者驗收測試(UAT)。實務上常先由內部同仁跑 Alpha 測試,沒問題再開放給外部真實使用者跑全功能的 Beta 測試。
回歸測試(Regression Testing):系統改版或修 Bug 後,一定要拿「先前同一套測試資料」重新跑一次,確認這次改動沒有意外改壞原本正常的舊功能。
社交測試(Sociability Testing):確認新系統進到目標環境後,可以跟現有的其他系統「和平共處」,在多個應用程式同時運作下不會相互干擾。
先期測試(Pilot)與並行測試(Parallel):先期測試是在少數單位或地點進行小規模試點,評估可行性;並行測試則是讓新舊系統同時跑並比對結果,確認新系統表現沒問題才正式切換,把風險降到最低。
結語
測試就像是系統上線前的安全防護網。從開發自測的單元測試,到壓測與安檢兼備的系統測試,再到避免「改 A 壞 B」的回歸測試,每一環都有它的不可替代性。把測試流程做好,才是專案能順利上線的最短捷徑。